ECS で「タスクの停止理由」を確認する方法を教えてください

ECS で「タスクの停止理由」を確認する方法を教えてください

Clock Icon2024.07.09

困っていた内容

ECS タスクが予期せず停止しました。
トラブルシューティングのため「タスクの停止理由」を確認する方法を教えてください。

Amazon ECS でタスクが停止した場合のトラブルシューティング | AWS re:Post

どう対応すればいいの?

Amazon ECS コンソールの場合は「タスク」タブから確認します。
AWS CLI の場合はdescribe-tasksコマンドから確認します。

Amazon ECS コンソールから確認する場合

Amazon ECS コンソールの「クラスター」から、停止したタスクが含まれるクラスターを選択します。

ECS Task StoppedReason 1

「タスク」タブを選択します。

ECS Task StoppedReason 2

「希望するステータスをフィルタリング」を「あらゆる希望するステータス」に変更します。

ECS Task StoppedReason 3

停止した確認したいタスク(前回のステータス停止済み)を選択します。

ECS Task StoppedReason 4

タスクの停止理由が表示されます。
今回の場合は「Task stopped by user」となります。

ECS Task StoppedReason 5

なお、トラブルシューティングの際は「コンテナ」セクションの「ステータス」の確認も有用です。
終了コードの意味は次のドキュメントをご確認ください。
Amazon ECS でタスクが停止した場合のトラブルシューティング | AWS re:Post

一般的な終了コード

ECS Task StoppedReason 6

AWS CLIから確認する場合

list-tasksコマンドを実行して、クラスター内のtaskArnsを取得します。

$ aws ecs list-tasks \
     --cluster hato-ecs-cluster \
     --desired-status STOPPED
{
    "taskArns": [
        "arn:aws:ecs:ap-northeast-1:123456789012:task/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8"
    ]
}

describe-tasksコマンドを実行して、stoppedReasonを確認します。

$ aws ecs describe-tasks \
     --cluster hato-ecs-cluster \     
     --tasks arn:aws:ecs:ap-northeast-1:123456789012:task/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8
{
    "tasks": [
        {
            "attachments": [
                {
                    "id": "09afe15e-aff6-45e6-95f5-10c394a9ce21",
                    "type": "ElasticNetworkInterface",
                    "status": "DELETED",
                    "details": [
                        {
                            "name": "subnetId",
                            "value": "subnet-032692e9def4f1d0f"
                        },
                        {
                            "name": "networkInterfaceId",
                            "value": "eni-018f8baedd6123803"
                        },
                        {
                            "name": "macAddress",
                            "value": "0a:da:56:ca:57:57"
                        },
                        {
                            "name": "privateDnsName",
                            "value": "ip-10-0-1-205.ap-northeast-1.compute.internal"
                        },
                        {
                            "name": "privateIPv4Address",
                            "value": "10.0.1.205"
                        }
                    ]
                }
            ],
            "attributes": [
                {
                    "name": "ecs.cpu-architecture",
                    "value": "x86_64"
                }
            ],
            "availabilityZone": "ap-northeast-1c",
            "capacityProviderName": "FARGATE_SPOT",
            "clusterArn": "arn:aws:ecs:ap-northeast-1:123456789012:cluster/hato-ecs-cluster",
            "connectivity": "CONNECTED",
            "connectivityAt": "2024-01-02T11:06:17.932000+09:00",
            "containers": [
                {
                    "containerArn": "arn:aws:ecs:ap-northeast-1:123456789012:container/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8/2eb86e18-bf6a-46ce-a692-999346107dbb",
                    "taskArn": "arn:aws:ecs:ap-northeast-1:123456789012:task/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8",
                    "name": "hato-container",
                    "image": "123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/alpine:latest",
                    "imageDigest": "sha256:6457d53fb065d6f250e1504b9bc42d5b6c65941d57532c072d929dd0628977d0",
                    "runtimeId": "79a300d3e9f1455a9b7ca44eca57eaf8-1453530749",
                    "lastStatus": "STOPPED",
                    "exitCode": 137,
                    "networkBindings": [],
                    "networkInterfaces": [
                        {
                            "attachmentId": "09afe15e-aff6-45e6-95f5-10c394a9ce21",
                            "privateIpv4Address": "10.0.1.205"
                        }
                    ],
                    "healthStatus": "UNKNOWN",
                    "cpu": "0"
                }
            ],
            "cpu": "256",
            "createdAt": "2024-01-02T11:06:09.664000+09:00",
            "desiredStatus": "STOPPED",
            "enableExecuteCommand": false,
            "executionStoppedAt": "2024-01-02T17:30:09.914000+09:00",
            "group": "service:hato-ecs-service",
            "healthStatus": "UNKNOWN",
            "lastStatus": "STOPPED",
            "launchType": "FARGATE",
            "memory": "512",
            "overrides": {
                "containerOverrides": [
                    {
                        "name": "hato-container"
                    }
                ],
                "inferenceAcceleratorOverrides": []
            },
            "platformVersion": "1.4.0",
            "platformFamily": "Linux",
            "pullStartedAt": "2024-01-02T11:06:32.662000+09:00",
            "pullStoppedAt": "2024-01-02T11:06:33.632000+09:00",
            "startedAt": "2024-01-02T11:06:36.117000+09:00",
            "startedBy": "ecs-svc/1108618674869949708",
            "stopCode": "UserInitiated",
            "stoppedAt": "2024-01-02T17:30:36.601000+09:00",
            "stoppedReason": "Task stopped by user",
            "stoppingAt": "2024-01-02T11:09:28.059000+09:00",
            "tags": [],
            "taskArn": "arn:aws:ecs:ap-northeast-1:123456789012:task/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8",
            "taskDefinitionArn": "arn:aws:ecs:ap-northeast-1:123456789012:task-definition/hato-taskdefinition:15",
            "version": 7,
            "ephemeralStorage": {
                "sizeInGiB": 20
            }
        }
    ],
    "failures": []
}

参考資料

停止したタスクは 1 時間だけコンソールに表示されます。

Currently, stopped tasks appear in the returned results for at least one hour.

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.